QuickSight の制限付き共有フォルダにグループの権限を付与し、ユーザーを追加する運用が可能か検証してみた
コーヒーが好きな emi です。
QuickSight の制限付き共有フォルダは QuickSight コンソールから作成・編集することができず、AWS CLI などの API でしか操作できません。
制限付き共有フォルダへのアクセス権限追加・削除・変更等の操作手順を一通り試してみましたので共有します。
グループを作成しユーザーを追加
グループ「Group1-shared-restricted-folder」を作成し、ユーザー「DataAnalysisUser1」を追加します。
ユーザーとグループの作成方法は以下の記事を参考にしてください。
制限付き共有フォルダを作成しグループに寄稿者の権限を付与
制限付き共有フォルダ「Shared restricted folder for Group1」を作成し、グループ「Group1-shared-restricted-folder」に寄稿者の権限を付与します。
以降の AWS CLI コマンドは CloudShell で実行していきます。
まずグループの ARN を取得します。
list-groups — AWS CLI 2.17.56 Command Reference
aws quicksight list-groups --aws-account-id 123456789012 --namespace default
▼実行結果
[cloudshell-user@ip-10-132-71-74 ~]$ aws quicksight list-groups --aws-account-id 123456789012 --namespace default
{
"GroupList": [
{
"Arn": "arn:aws:quicksight:ap-northeast-1:123456789012:group/default/Group1-shared-restricted-folder",
"GroupName": "Group1-shared-restricted-folder",
"Description": "Group1-shared-restricted-folder",
"PrincipalId": "group/d-xxxxxxxxxx/dad44c5d-90ef-4e64-a334-7da864c52db0"
}
],
"Status": 200,
"RequestId": "a3dcc7b4-f279-474b-ba12-04a6230f6fa2"
}
[cloudshell-user@ip-10-132-71-74 ~]$
グループ「Group1-shared-restricted-folder」の ARN は arn:aws:quicksight:ap-northeast-1:123456789012:group/default/Group1-shared-restricted-folder
であることが分かりました。
制限付き共有フォルダの作成方法は以下の記事を参考にしてください。
create-folder コマンドを使って CloudShell から制限付き共有フォルダを作成します。
CLI スケルトンを使って JSON 形式でパラメーターを指定していきます。
まず --generate-cli-skeleton
パラメーターを指定して、JSON のひな形をファイルに保存します。
aws quicksight create-folder --generate-cli-skeleton > create-folder-for-gp1.json
▼実行結果
[cloudshell-user@ip-10-132-71-74 ~]$ aws quicksight create-folder --generate-cli-skeleton > create-folder-for-gp1.json
[cloudshell-user@ip-10-132-71-74 ~]$
ls
と cat
でファイルが作成されたことを確認します。
[cloudshell-user@ip-10-132-71-74 ~]$ ls
create-folder-hoge.json
[cloudshell-user@ip-10-132-71-74 ~]$
[cloudshell-user@ip-10-132-71-74 ~]$ cat create-folder-for-gp1.json
{
"AwsAccountId": "",
"FolderId": "",
"Name": "",
"FolderType": "SHARED",
"ParentFolderArn": "",
"Permissions": [
{
"Principal": "",
"Actions": [
""
]
}
],
"Tags": [
{
"Key": "",
"Value": ""
}
],
"SharingModel": "ACCOUNT"
}
[cloudshell-user@ip-10-132-71-74 ~]$
JSON を以下のように編集します。
{
"AwsAccountId": "123456789012",
"FolderId": "shared_restricted_folder_for_group1",
"Name": "Shared restricted folder for Group1",
"FolderType": "RESTRICTED",
"Permissions": [
{
"Principal": "arn:aws:quicksight:ap-northeast-1:123456789012:group/default/Group1-shared-restricted-folder",
"Actions": [
"quicksight:CreateFolder",
"quicksight:DescribeFolder",
"quicksight:CreateFolderMembership",
"quicksight:DeleteFolderMembership",
"quicksight:DescribeFolderPermissions"
]
}
]
}
これは、グループ「Group1-shared-restricted-folder」に寄稿者権限を付与した制限付き共有フォルダを作成する設定です。
vi エディタなどで作成した JSON ファイルを編集してください。編集後、cat
コマンドで JSON ファイルが正しく変更されていることを確認します。
[cloudshell-user@ip-10-132-71-74 ~]$ cat create-folder-for-gp1.json
{
"AwsAccountId": "123456789012",
"FolderId": "shared_restricted_folder_for_group1",
"Name": "Shared restricted folder for Group1",
"FolderType": "RESTRICTED",
"Permissions": [
{
"Principal": "arn:aws:quicksight:ap-northeast-1:123456789012:group/default/Group1-shared-restricted-folder",
"Actions": [
"quicksight:CreateFolder",
"quicksight:DescribeFolder",
"quicksight:CreateFolderMembership",
"quicksight:DeleteFolderMembership",
"quicksight:DescribeFolderPermissions"
]
}
]
}
[cloudshell-user@ip-10-132-71-74 ~]$
では、制限付き共有フォルダを作成します。
aws quicksight create-folder \
--cli-input-json file://create-folder-for-gp1.json
▼実行結果
[cloudshell-user@ip-10-132-71-74 ~]$ aws quicksight create-folder \
> --cli-input-json file://create-folder-for-gp1.json
{
"Status": 200,
"Arn": "arn:aws:quicksight:ap-northeast-1:123456789012:folder/shared_restricted_folder_for_group1",
"FolderId": "shared_restricted_folder_for_group1",
"RequestId": "1e3c8c25-3597-487a-a58e-6ce4214ed0df"
}
[cloudshell-user@ip-10-132-71-74 ~]$
制限付き共有フォルダ「Shared restricted folder for Group1」が作成されたことを確認します。
「フォルダへのアクセス権限の表示」で、権限も設定どおりになっていることが分かります。
アセットを作成
作成した制限付き共有フォルダにアセットを追加します。
アセットとは、データソース、データセット、分析、ダッシュボード等の QuickSight リソースの総称です。
ブログの 制限付き共有フォルダ内にアセットを作成する を参考にアセットを作成します。
グループにユーザーを追加し制限付き共有フォルダのアセットにアクセスできるか確認
以降の検証のために QuickSight ユーザーを追加します。
- DataAnalysisUser2
- DataAnalysisUser3
- DataAnalysisUser4
- DataAnalysisUser5
DataAnalysisUser2 で QuickSight にログインしました。
制限付き共有フォルダは見えません。
グループ「Group1-shared-restricted-folder」にユーザー「DataAnalysisUser2」を追加します。
DataAnalysisUser2 で制限付き共有フォルダ「Shared restricted folder for Group1」が見えるようになりました。制限付き共有フォルダ内のアセットも操作できます。
グループからユーザーを削除し、制限付き共有フォルダにアクセスできなくなることを確認
グループ「Group1-shared-restricted-folder」からユーザー「DataAnalysisUser2」を削除します。
ユーザー「DataAnalysisUser2」を削除してすぐは制限付き共有フォルダのアセットが見えていましたが、2 分程で見えなくなりました。少し反映に時間がかかるようです。
二つのグループを寄稿者として権限追加
以下のようにグループを二つ追加で作成し、二つ同時に寄稿者として権限追加できるか検証します。
- グループ「Group2-shared-restricted-folder」
- ユーザー「DataAnalysisUser3」を追加
- グループ「Group3-shared-restricted-folder」
- ユーザー「DataAnalysisUser4」を追加
制限付き共有フォルダの権限編集は update-folder-permissions コマンドでおこないます。
CLI スケルトンを使って JSON 形式でパラメーターを指定していきます。
まず --generate-cli-skeleton
パラメーターを指定して、JSON のひな形をファイルに保存します。
aws quicksight update-folder-permissions --generate-cli-skeleton > update-folder-1.json
▼実行結果
[cloudshell-user@ip-10-132-73-217 ~]$ aws quicksight update-folder-permissions --generate-cli-skeleton > update-folder-1.json
[cloudshell-user@ip-10-132-73-217 ~]$
ls
と cat update-folder-1.json
コマンドでファイルが作成されたことを確認します。
[cloudshell-user@ip-10-132-73-217 ~]$ ls
create-folder-for-gp1.json update-folder-1.json
[cloudshell-user@ip-10-132-73-217 ~]$ cat update-folder-1.json
{
"AwsAccountId": "",
"FolderId": "",
"GrantPermissions": [
{
"Principal": "",
"Actions": [
""
]
}
],
"RevokePermissions": [
{
"Principal": "",
"Actions": [
""
]
}
]
}
[cloudshell-user@ip-10-132-73-217 ~]$
list-groups でグループの ARN を取得します。
[cloudshell-user@ip-10-132-73-217 ~]$ aws quicksight list-groups --aws-account-id 123456789012 --namespace default
{
"GroupList": [
{
"Arn": "arn:aws:quicksight:ap-northeast-1:123456789012:group/default/Group1-shared-restricted-folder",
"GroupName": "Group1-shared-restricted-folder",
"Description": "Group1-shared-restricted-folder",
"PrincipalId": "group/d-xxxxxxxxxx/dad44c5d-90ef-4e64-a334-7da864c52db0"
},
{
"Arn": "arn:aws:quicksight:ap-northeast-1:123456789012:group/default/Group2-shared-restricted-folder",
"GroupName": "Group2-shared-restricted-folder",
"Description": "Group2-shared-restricted-folder",
"PrincipalId": "group/d-xxxxxxxxxx/9e604e53-d23b-409a-8c0e-e8dec2b5b756"
},
{
"Arn": "arn:aws:quicksight:ap-northeast-1:123456789012:group/default/Group3-shared-restricted-folder",
"GroupName": "Group3-shared-restricted-folder",
"Description": "Group3-shared-restricted-folder",
"PrincipalId": "group/d-xxxxxxxxxx/b3b77fd0-cba8-422a-9d91-dee21c9bcfa0"
}
],
"Status": 200,
"RequestId": "3108fab7-5eb2-4d0a-a982-c1df7fa46d91"
}
[cloudshell-user@ip-10-132-73-217 ~]$
グループ「Group2-shared-restricted-folder」と「Group3-shared-restricted-folder」の ARN はそれぞれ以下であることが確認できました。
"arn:aws:quicksight:ap-northeast-1:123456789012:group/default/Group2-shared-restricted-folder"
"arn:aws:quicksight:ap-northeast-1:123456789012:group/default/Group3-shared-restricted-folder"
JSON ファイル「update-folder-1.json」を以下のように修正します。
{
"AwsAccountId": "123456789012",
"FolderId": "shared_restricted_folder_for_group1",
"GrantPermissions": [
{
"Principal": "arn:aws:quicksight:ap-northeast-1:123456789012:group/default/Group2-shared-restricted-folder",
"Actions": [
"quicksight:CreateFolder",
"quicksight:DescribeFolder",
"quicksight:CreateFolderMembership",
"quicksight:DeleteFolderMembership",
"quicksight:DescribeFolderPermissions"
]
},
{
"Principal": "arn:aws:quicksight:ap-northeast-1:123456789012:group/default/Group3-shared-restricted-folder",
"Actions": [
"quicksight:CreateFolder",
"quicksight:DescribeFolder",
"quicksight:CreateFolderMembership",
"quicksight:DeleteFolderMembership",
"quicksight:DescribeFolderPermissions"
]
}
]
}
vi エディタなどで編集後、cat
で JSON ファイルが正しく変更されていることを確認します。
[cloudshell-user@ip-10-134-7-138 ~]$ cat update-folder-1.json
{
"AwsAccountId": "123456789012",
"FolderId": "shared_restricted_folder_for_group1",
"GrantPermissions": [
{
"Principal": "arn:aws:quicksight:ap-northeast-1:123456789012:group/default/Group2-shared-restricted-folder",
"Actions": [
"quicksight:CreateFolder",
"quicksight:DescribeFolder",
"quicksight:CreateFolderMembership",
"quicksight:DeleteFolderMembership",
"quicksight:DescribeFolderPermissions"
]
},
{
"Principal": "arn:aws:quicksight:ap-northeast-1:123456789012:group/default/Group3-shared-restricted-folder",
"Actions": [
"quicksight:CreateFolder",
"quicksight:DescribeFolder",
"quicksight:CreateFolderMembership",
"quicksight:DeleteFolderMembership",
"quicksight:DescribeFolderPermissions"
]
}
]
}
[cloudshell-user@ip-10-134-7-138 ~]$
では、制限付き共有フォルダの権限を更新します。
aws quicksight update-folder-permissions \
--cli-input-json file://update-folder-1.json
▼実行結果
[cloudshell-user@ip-10-132-73-217 ~]$ aws quicksight update-folder-permissions \
> --cli-input-json file://update-folder-1.json
{
"Status": 200,
"Arn": "arn:aws:quicksight:ap-northeast-1:123456789012:folder/shared_restricted_folder_for_group1",
"FolderId": "shared_restricted_folder_for_group1",
"Permissions": [
{
"Principal": "arn:aws:quicksight:ap-northeast-1:123456789012:group/default/Group3-shared-restricted-folder",
"Actions": [
"quicksight:CreateFolder",
"quicksight:DescribeFolder",
"quicksight:CreateFolderMembership",
"quicksight:DeleteFolderMembership",
"quicksight:DescribeFolderPermissions"
]
},
{
"Principal": "arn:aws:quicksight:ap-northeast-1:123456789012:group/default/Group2-shared-restricted-folder",
"Actions": [
"quicksight:CreateFolder",
"quicksight:DescribeFolder",
"quicksight:CreateFolderMembership",
"quicksight:DeleteFolderMembership",
"quicksight:DescribeFolderPermissions"
]
},
{
"Principal": "arn:aws:quicksight:ap-northeast-1:123456789012:group/default/Group1-shared-restricted-folder",
"Actions": [
"quicksight:CreateFolder",
"quicksight:DescribeFolder",
"quicksight:CreateFolderMembership",
"quicksight:DeleteFolderMembership",
"quicksight:DescribeFolderPermissions"
]
}
],
"RequestId": "b77ad1c2-0da5-4b5d-a0c6-37b4362341be"
}
[cloudshell-user@ip-10-132-73-217 ~]$
制限付き共有フォルダの「View permissions」から、フォルダへのアクセス権限が追加されていることが確認できます。
DataAnalysisUser3、DataAnalysisUser4 でログインし、制限付き共有フォルダ「Shared restricted folder for Group1」が見えるか確認します。
見えました。分析なども操作できます。
グループの権限を削除し、ユーザーに表示者権限を追加
ユーザー「DataAnalysisUser4」を含むグループ「Group3-shared-restricted-folder」の寄稿者権限を削除し、ユーザー「DataAnalysisUser5」単体を表示者(閲覧者。読み取りのみ)権限で追加してみます。
先ほどと同様に update-folder-permissions コマンドで CLI スケルトンの JSON を作成します。
[cloudshell-user@ip-10-132-73-217 ~]$ aws quicksight update-folder-permissions --generate-cli-skeleton > update-folder-2.json
[cloudshell-user@ip-10-132-73-217 ~]$ ls
create-folder-for-gp1.json update-folder-1.json update-folder-2.json
[cloudshell-user@ip-10-132-73-217 ~]$ cat update-folder-2.json
{
"AwsAccountId": "",
"FolderId": "",
"GrantPermissions": [
{
"Principal": "",
"Actions": [
""
]
}
],
"RevokePermissions": [
{
"Principal": "",
"Actions": [
""
]
}
]
}
[cloudshell-user@ip-10-132-73-217 ~]$
今度は list-users コマンドでユーザーの ARN を取得します。
aws quicksight list-users --aws-account-id 123456789012 --namespace default
▼実行結果
[cloudshell-user@ip-10-134-7-138 ~]$ aws quicksight list-users --aws-account-id 123456789012 --namespace default
{
"UserList": [
{
"Arn": "arn:aws:quicksight:ap-northeast-1:123456789012:user/default/AWSReservedSSO_AWSAdministratorAccess_4b32xxxxxxxxxx/KitaniEmi",
"UserName": "AWSReservedSSO_AWSAdministratorAccess_4b32xxxxxxxxxx/KitaniEmi",
"Email": "000@example.com",
"Role": "ADMIN",
"IdentityType": "IAM",
"Active": true,
"PrincipalId": "federated/iam/AROAXXXXXXXXXX:KitaniEmi"
},
{
"Arn": "arn:aws:quicksight:ap-northeast-1:123456789012:user/default/AWSReservedSSO_QuickSightFullAccess_af51xxxxxxxxxx/DataAnalysisUser1",
"UserName": "AWSReservedSSO_QuickSightFullAccess_af51xxxxxxxxxx/DataAnalysisUser1",
"Email": "111@example.com",
"Role": "ADMIN",
"IdentityType": "IAM",
"Active": true,
"PrincipalId": "federated/iam/AROAXXXXXXXXXX:DataAnalysisUser1"
},
{
"Arn": "arn:aws:quicksight:ap-northeast-1:123456789012:user/default/AWSReservedSSO_AWSPowerUserAccess_e0b5xxxxxxxxxx/KitaniEmi",
"UserName": "AWSReservedSSO_AWSPowerUserAccess_e0b5xxxxxxxxxx/KitaniEmi",
"Email": "0000@example.com",
"Role": "ADMIN",
"IdentityType": "IAM",
"Active": true,
"PrincipalId": "federated/iam/AROAXXXXXXXXXX:KitaniEmi"
},
{
"Arn": "arn:aws:quicksight:ap-northeast-1:123456789012:user/default/DataAnalysisUser3",
"UserName": "DataAnalysisUser3",
"Email": "333@example.com",
"Role": "AUTHOR",
"IdentityType": "QUICKSIGHT",
"Active": true,
"PrincipalId": "user/d-xxxxxxxxxx/271dc488-6056-47fb-86f1-e42ef2e24152"
},
{
"Arn": "arn:aws:quicksight:ap-northeast-1:123456789012:user/default/DataAnalysisUser5",
"UserName": "DataAnalysisUser5",
"Email": "555@example.com",
"Role": "AUTHOR",
"IdentityType": "QUICKSIGHT",
"Active": true,
"PrincipalId": "user/d-xxxxxxxxxx/29d20cde-93d6-4d3a-8850-2bf1b3e78835"
},
{
"Arn": "arn:aws:quicksight:ap-northeast-1:123456789012:user/default/DataAnalysisUser2",
"UserName": "DataAnalysisUser2",
"Email": "222@example.com",
"Role": "AUTHOR",
"IdentityType": "QUICKSIGHT",
"Active": true,
"PrincipalId": "user/d-xxxxxxxxxx/424cc47f-7c72-410a-ba89-2ba4e9e504ab"
},
{
"Arn": "arn:aws:quicksight:ap-northeast-1:123456789012:user/default/DataAnalysisUser4",
"UserName": "DataAnalysisUser4",
"Email": "444@example.com",
"Role": "AUTHOR",
"IdentityType": "QUICKSIGHT",
"Active": true,
"PrincipalId": "user/d-xxxxxxxxxx/5d89fe28-52ec-4f96-93ba-c183278caef4"
}
],
"Status": 200,
"RequestId": "2dd7b140-f15d-478a-ba0b-4f83cd93a439"
}
[cloudshell-user@ip-10-134-7-138 ~]$
ユーザー「DataAnalysisUser5」の ARN は arn:aws:quicksight:ap-northeast-1:123456789012:user/default/DataAnalysisUser5
であることが分かりました。
「Group3-shared-restricted-folder」の寄稿者権限を削除し、「DataAnalysisUser5」の表示者権限を追加するように JSON ファイル「update-folder-2.json」を編集します。
{
"AwsAccountId": "123456789012",
"FolderId": "shared_restricted_folder_for_group1",
"GrantPermissions": [
{
"Principal": "arn:aws:quicksight:ap-northeast-1:123456789012:user/default/DataAnalysisUser5",
"Actions": [
"quicksight:DescribeFolder"
]
}
],
"RevokePermissions": [
{
"Principal": "arn:aws:quicksight:ap-northeast-1:123456789012:group/default/Group3-shared-restricted-folder",
"Actions": [
"quicksight:CreateFolder",
"quicksight:DescribeFolder",
"quicksight:CreateFolderMembership",
"quicksight:DeleteFolderMembership",
"quicksight:DescribeFolderPermissions"
]
}
]
}
vi エディタなどで編集後、cat
で JSON ファイルが正しく変更されていることを確認します。
[cloudshell-user@ip-10-134-7-138 ~]$ cat update-folder-2.json
{
"AwsAccountId": "123456789012",
"FolderId": "shared_restricted_folder_for_group1",
"GrantPermissions": [
{
"Principal": "arn:aws:quicksight:ap-northeast-1:123456789012:user/default/DataAnalysisUser5",
"Actions": [
"quicksight:DescribeFolder"
]
}
],
"RevokePermissions": [
{
"Principal": "arn:aws:quicksight:ap-northeast-1:123456789012:group/default/Group3-shared-restricted-folder",
"Actions": [
"quicksight:CreateFolder",
"quicksight:DescribeFolder",
"quicksight:CreateFolderMembership",
"quicksight:DeleteFolderMembership",
"quicksight:DescribeFolderPermissions"
]
}
]
}
[cloudshell-user@ip-10-134-7-138 ~]$
では、制限付き共有フォルダの権限を更新します。
aws quicksight update-folder-permissions \
--cli-input-json file://update-folder-2.json
▼実行結果
[cloudshell-user@ip-10-134-7-138 ~]$ aws quicksight update-folder-permissions \
> --cli-input-json file://update-folder-2.json
{
"Status": 200,
"Arn": "arn:aws:quicksight:ap-northeast-1:123456789012:folder/shared_restricted_folder_for_group1",
"FolderId": "shared_restricted_folder_for_group1",
"Permissions": [
{
"Principal": "arn:aws:quicksight:ap-northeast-1:123456789012:user/default/DataAnalysisUser5",
"Actions": [
"quicksight:DescribeFolder"
]
},
{
"Principal": "arn:aws:quicksight:ap-northeast-1:123456789012:group/default/Group2-shared-restricted-folder",
"Actions": [
"quicksight:CreateFolder",
"quicksight:DescribeFolder",
"quicksight:CreateFolderMembership",
"quicksight:DeleteFolderMembership",
"quicksight:DescribeFolderPermissions"
]
},
{
"Principal": "arn:aws:quicksight:ap-northeast-1:123456789012:group/default/Group1-shared-restricted-folder",
"Actions": [
"quicksight:CreateFolder",
"quicksight:DescribeFolder",
"quicksight:CreateFolderMembership",
"quicksight:DeleteFolderMembership",
"quicksight:DescribeFolderPermissions"
]
}
],
"RequestId": "1e3871b8-3b30-410a-8971-731f87ef95c7"
}
[cloudshell-user@ip-10-134-7-138 ~]$
制限付き共有フォルダの「View permissions」から、フォルダへのアクセス権限が変更されていることを確認します。
グループ「Group3-shared-restricted-folder」のアクセス権限は消えており、ユーザー「DataAnalysisUser5」の表示者権限が追加されています。
DataAnalysisUser4 でログインし、制限付き共有フォルダ「Shared restricted folder for Group1」が見えなくなったか確認します。
見えないですね。想定通りです。
DataAnalysisUser5 でログインし、制限付き共有フォルダ「Shared restricted folder for Group1」が見えるか確認します。
見えました。先ほどと違い分析は表示されておらず、ダッシュボードは表示されているものの「削除」が表示されなくなっています。表示者としての権限が適用されていることが確認できました。
ダッシュボードを閲覧することはできます。
データセットも表示できますが、メニューは表示されません。
データソースも見てみます。「データセットの作成」が押下できるようなので進んでみます。
「カスタム SQL を使用」が押下できるので進んでみます。
「データの編集/プレビュー」が押下できるので進んでみます。
カスタム SQL でデータをクエリするところまでできました。
「保存して公開」や「保存して視覚化」を押下すると「このアクションを実行できません」となりました。閉じてキャンセルします。
グループの権限を寄稿者から表示者に変更する
ユーザー「DataAnalysisUser3」を含む「Group2-shared-restricted-folder」の寄稿者権限を表示者(閲覧者)権限に変更します。
update-folder-permissions でこれまで同様 CLI スケルトンの JSON ファイルを作成します。
{
"AwsAccountId": "123456789012",
"FolderId": "shared_restricted_folder_for_group1",
"GrantPermissions": [
{
"Principal": "arn:aws:quicksight:ap-northeast-1:123456789012:group/default/Group2-shared-restricted-folder",
"Actions": [
"quicksight:DescribeFolder"
]
}
]
}
cat
で JSON ファイルが保存できているか確認します。
[cloudshell-user@ip-10-134-7-138 ~]$ cat update-folder-3.json
{
"AwsAccountId": "123456789012",
"FolderId": "shared_restricted_folder_for_group1",
"GrantPermissions": [
{
"Principal": "arn:aws:quicksight:ap-northeast-1:123456789012:group/default/Group2-shared-restricted-folder",
"Actions": [
"quicksight:DescribeFolder"
]
}
]
}
[cloudshell-user@ip-10-134-7-138 ~]$
アクセス権限を更新します。
aws quicksight update-folder-permissions \
--cli-input-json file://update-folder-3.json
▼実行結果
[cloudshell-user@ip-10-134-7-138 ~]$ aws quicksight update-folder-permissions \
> --cli-input-json file://update-folder-3.json
{
"Status": 200,
"Arn": "arn:aws:quicksight:ap-northeast-1:123456789012:folder/shared_restricted_folder_for_group1",
"FolderId": "shared_restricted_folder_for_group1",
"Permissions": [
{
"Principal": "arn:aws:quicksight:ap-northeast-1:123456789012:user/default/DataAnalysisUser5",
"Actions": [
"quicksight:DescribeFolder"
]
},
{
"Principal": "arn:aws:quicksight:ap-northeast-1:123456789012:group/default/Group2-shared-restricted-folder",
"Actions": [
"quicksight:DescribeFolder"
]
},
{
"Principal": "arn:aws:quicksight:ap-northeast-1:123456789012:group/default/Group1-shared-restricted-folder",
"Actions": [
"quicksight:CreateFolder",
"quicksight:DescribeFolder",
"quicksight:CreateFolderMembership",
"quicksight:DeleteFolderMembership",
"quicksight:DescribeFolderPermissions"
]
}
],
"RequestId": "38c7582f-96bc-4105-b2fa-cc135757fed7"
}
[cloudshell-user@ip-10-134-7-138 ~]$
制限付き共有フォルダの「View permissions」から権限が変更されたか確認します。
「Group2-shared-restricted-folder」の寄稿者権限が表示者権限に変わっていることが確認できました。
ユーザー「DataAnalysisUser3」でログインすると、先ほどと異なり分析が表示されず、ダッシュボードは閲覧できますが「削除」操作は表示されなくなっています。
アセットの削除
寄稿者の権限があれば、QuickSight コンソール上 GUI 操作でアセットを削除できます。
ダッシュボードを削除します。
分析を削除します。
データセットを削除します。
データソースを削除します。
制限付き共有フォルダ内のアセットをすべて削除できました。
制限付き共有フォルダの削除
最後に制限付き共有フォルダを削除します。
制限付き共有フォルダの削除は delete-folder コマンドでおこないます。
まずはそのまま実行してみます。
aws quicksight delete-folder
▼実行結果
[cloudshell-user@ip-10-130-58-177 ~]$ aws quicksight delete-folder
usage: aws [options] <command> <subcommand> [<subcommand> ...] [parameters]
To see help text, you can run:
aws help
aws <command> help
aws <command> <subcommand> help
aws: error: the following arguments are required: --aws-account-id, --folder-id
[cloudshell-user@ip-10-130-58-177 ~]$
引数として --aws-account-id
と --folder-id
が必要であることが分かりました。
--folder-id
を調べるには list-folders コマンドを使います。
まずはそのまま実行してみます。
aws quicksight list-folders
▼実行結果
[cloudshell-user@ip-10-130-58-177 ~]$ aws quicksight list-folders
usage: aws [options] <command> <subcommand> [<subcommand> ...] [parameters]
To see help text, you can run:
aws help
aws <command> help
aws <command> <subcommand> help
aws: error: the following arguments are required: --aws-account-id
[cloudshell-user@ip-10-130-58-177 ~]$
引数として --aws-account-id
が必要であることが分かったので、--aws-account-id
を指定して実行します。
aws quicksight list-folders --aws-account-id 123456789012
▼実行結果
[cloudshell-user@ip-10-134-17-197 ~]$ aws quicksight list-folders --aws-account-id 123456789012
{
"FolderSummaryList": [
{
"Arn": "arn:aws:quicksight:ap-northeast-1:123456789012:folder/xxxxxxxxxx",
"FolderId": "xxxxxxxxxx",
"Name": "XXXXX XXXXX",
"FolderType": "RESTRICTED",
"CreatedTime": "2024-09-13T04:43:02.386000+00:00",
"LastUpdatedTime": "2024-09-13T04:43:02.386000+00:00",
"SharingModel": "ACCOUNT"
},
{
"Arn": "arn:aws:quicksight:ap-northeast-1:123456789012:folder/yyyyyyyyyy",
"FolderId": "yyyyyyyyyy",
"Name": "YYYYY YYYYYY",
"FolderType": "RESTRICTED",
"CreatedTime": "2024-08-26T14:18:33.519000+00:00",
"LastUpdatedTime": "2024-08-26T14:18:33.519000+00:00",
"SharingModel": "ACCOUNT"
},
{
"Arn": "arn:aws:quicksight:ap-northeast-1:123456789012:folder/zzzzzzzzzz",
"FolderId": "zzzzzzzzzz",
"Name": "ZZZZZ ZZZZZZ",
"FolderType": "RESTRICTED",
"CreatedTime": "2024-08-27T01:30:49.081000+00:00",
"LastUpdatedTime": "2024-08-27T01:30:49.081000+00:00",
"SharingModel": "ACCOUNT"
},
{
"Arn": "arn:aws:quicksight:ap-northeast-1:123456789012:folder/90278753-a06b-4aa0-ba31-99f5e74fc2c5",
"FolderId": "90278753-a06b-4aa0-ba31-",
"Name": "Shared folder",
"FolderType": "SHARED",
"CreatedTime": "2024-08-26T13:24:21.516000+00:00",
"LastUpdatedTime": "2024-08-26T13:24:21.516000+00:00",
"SharingModel": "ACCOUNT"
},
{
"Arn": "arn:aws:quicksight:ap-northeast-1:123456789012:folder/shared_restricted_folder_for_group1",
"FolderId": "shared_restricted_folder_for_group1",
"Name": "Shared restricted folder for Group1",
"FolderType": "RESTRICTED",
"CreatedTime": "2024-09-17T00:43:21.851000+00:00",
"LastUpdatedTime": "2024-09-17T05:36:04.315000+00:00",
"SharingModel": "ACCOUNT"
},
{
"Arn": "arn:aws:quicksight:ap-northeast-1:123456789012:folder/uuuuuuuuuu",
"FolderId": "uuuuuuuuuu",
"Name": "UUUUU UUUUUU",
"FolderType": "RESTRICTED",
"CreatedTime": "2024-09-23T13:25:17.719000+00:00",
"LastUpdatedTime": "2024-09-23T13:25:17.719000+00:00",
"SharingModel": "ACCOUNT"
}
],
"Status": 200,
"RequestId": "be5840a7-68f6-47b5-9f1b-e33aed560b1c"
}
[cloudshell-user@ip-10-134-17-197 ~]$
制限付き共有フォルダ「shared_restricted_folder_for_group1」のフォルダー ID は shared_restricted_folder_for_group1
であることが分かりました。
では、制限付き共有フォルダ「shared_restricted_folder_for_group1」を削除します。
aws quicksight delete-folder --aws-account-id 123456789012 --folder-id shared_restricted_folder_for_group1
▼実行結果
[cloudshell-user@ip-10-134-17-197 ~]$ aws quicksight delete-folder --aws-account-id 123456789012 --folder-id shared_restricted_folder_for_group1
{
"Status": 200,
"Arn": "arn:aws:quicksight:ap-northeast-1:123456789012:folder/shared_restricted_folder_for_group1",
"FolderId": "shared_restricted_folder_for_group1",
"RequestId": "684184e8-5bc8-43ab-a022-017bb493e4d5"
}
[cloudshell-user@ip-10-134-17-197 ~]$
制限付き共有フォルダが削除できました。
失敗談
いくつか途中で失敗したので、失敗コマンドも紹介します。
二つのグループを寄稿者として権限追加する際の失敗
以下のように Principal を複数指定しようとしたらエラーになりました。
{
"AwsAccountId": "123456789012",
"FolderId": "shared_restricted_folder_for_group1",
"GrantPermissions": [
{
"Principal": {
"AWS": [
"arn:aws:quicksight:ap-northeast-1:123456789012:group/default/Group2-shared-restricted-folder",
"arn:aws:quicksight:ap-northeast-1:123456789012:group/default/Group3-shared-restricted-folder"
]
},
"Actions": [
"quicksight:CreateFolder",
"quicksight:DescribeFolder",
"quicksight:CreateFolderMembership",
"quicksight:DeleteFolderMembership",
"quicksight:DescribeFolderPermissions"
]
}
]
}
aws quicksight update-folder-permissions \
--cli-input-json file://update-folder-1.json
▼実行結果
[cloudshell-user@ip-10-132-73-217 ~]$ aws quicksight update-folder-permissions \
> --cli-input-json file://update-folder-1.json
Parameter validation failed:
Invalid type for parameter GrantPermissions[0].Principal, value: {'AWS': ['arn:aws:quicksight:ap-northeast-1:123456789012:group/default/Group2-shared-restricted-folder', 'arn:aws:quicksight:ap-northeast-1:123456789012:group/default/Group3-shared-restricted-folder']}, type: <class 'dict'>, valid types: <class 'str'>
[cloudshell-user@ip-10-132-73-217 ~]$
一度に二つ以上の Principal に権限を追加する際は、ブロックを複数記述する必要があるようです。
グループの権限を寄稿者から表示者に変更する際の失敗
"quicksight:DescribeFolder"
以外の権限を削除することを狙って以下のように RevokePermissions
を指定したらエラーになりました。
{
"AwsAccountId": "123456789012",
"FolderId": "shared_restricted_folder_for_group1",
"GrantPermissions": [
{
"Principal": "arn:aws:quicksight:ap-northeast-1:123456789012:group/default/Group2-shared-restricted-folder",
"Actions": [
"quicksight:DescribeFolder"
]
}
],
"RevokePermissions": [
{
"Principal": "arn:aws:quicksight:ap-northeast-1:123456789012:group/default/Group2-shared-restricted-folder",
"Actions": [
"quicksight:CreateFolder",
"quicksight:CreateFolderMembership",
"quicksight:DeleteFolderMembership",
"quicksight:DescribeFolderPermissions"
]
}
]
}
▼実行結果
[cloudshell-user@ip-10-134-7-138 ~]$ aws quicksight update-folder-permissions \
> --cli-input-json file://update-folder-3.json
An error occurred (InvalidParameterValueException) when calling the UpdateFolderPermissions operation: ResourcePermission list contains unsupported permission sets [quicksight:CreateFolderMembership, quicksight:CreateFolder, quicksight:DeleteFolderMembership, quicksight:DescribeFolderPermissions] for this resource. Valid sets : [quicksight:DescribeFolder] or [quicksight:CreateFolder, quicksight:DescribeFolder, quicksight:CreateFolderMembership, quicksight:DeleteFolderMembership, quicksight:DescribeFolderPermissions] or [quicksight:CreateFolder, quicksight:DescribeFolder, quicksight:UpdateFolder, quicksight:DeleteFolder, quicksight:CreateFolderMembership, quicksight:DeleteFolderMembership, quicksight:DescribeFolderPermissions, quicksight:UpdateFolderPermissions]
[cloudshell-user@ip-10-134-7-138 ~]$
(機械翻訳)
UpdateFolderPermissions オペレーションの呼び出し時にエラーが発生しました(InvalidParameterValueException): ResourcePermissionリストに、このリソースでサポートされていない権限セット[quicksight:CreateFolderMembership、quicksight:CreateFolder、quicksight:DeleteFolderMembership、quicksight:DescribeFolderPermissions]が含まれています。 UpdateFolder、quicksight:DeleteFolder、quicksight:CreateFolderMembership、quicksight:DeleteFolderMembership、quicksight:DescribeFolderPermissions、quicksight:UpdateFolderPermissions]CreateFolder操作の呼び出し時にエラーが発生しました(InvalidParameterValueException): アクセス許可に、制限付きフォルダのサポートされていないアクセス許可セットが含まれています。有効なセットです: 有効なセット:[quicksight:CreateFolder、quicksight:DescribeFolder、quicksight:CreateFolderMembership、quicksight:DeleteFolderMembership、quicksight:DescribeFolderPermissions] または [quicksight:DescribeFolder]。
権限セットが正しくないということで、一旦寄稿者の権限を削除してから表示者の権限を追加しようと思い、以下のように設定しましたがエラーになりました。
{
"AwsAccountId": "123456789012",
"FolderId": "shared_restricted_folder_for_group1",
"GrantPermissions": [
{
"Principal": "arn:aws:quicksight:ap-northeast-1:123456789012:group/default/Group2-shared-restricted-folder",
"Actions": [
"quicksight:DescribeFolder"
]
}
],
"RevokePermissions": [
{
"Principal": "arn:aws:quicksight:ap-northeast-1:123456789012:group/default/Group2-shared-restricted-folder",
"Actions": [
"quicksight:CreateFolder",
"quicksight:DescribeFolder",
"quicksight:CreateFolderMembership",
"quicksight:DeleteFolderMembership",
"quicksight:DescribeFolderPermissions"
]
}
]
}
▼実行結果
[cloudshell-user@ip-10-134-7-138 ~]$ aws quicksight update-folder-permissions \
> --cli-input-json file://update-folder-3.json
An error occurred (InvalidParameterValueException) when calling the UpdateFolderPermissions operation: The request is ambiguous as grantPermissions and revokePermissions for principal arn:aws:quicksight:ap-northeast-1:123456789012:group/default/Group2-shared-restricted-folder contain permission overlaps
[cloudshell-user@ip-10-134-7-138 ~]$
(機械翻訳)
UpdateFolderPermissions オペレーションの呼び出し時にエラーが発生しました(InvalidParameterValueException): プリンシパルarn:aws:quicksight:ap-northeast-1:123456789012:group/default/Group2-shared-restricted-folderに対するgrantPermissionsとrevokePermissionsにパーミッションの重複が含まれているため、要求があいまいです。
成功パターンはブログ記事上部に記載した通り、表示者権限の追加のみで良いです。
制限付き共有フォルダ内にアセットが存在すると制限付き共有フォルダを削除できない
制限付き共有フォルダ内にアセットが存在すると制限付き共有フォルダを削除できませんでした。
▼実行結果
[cloudshell-user@ip-10-134-17-197 ~]$ aws quicksight delete-folder --aws-account-id 123456789012 --folder-id shared_restricted_folder_for_group1
An error occurred (PreconditionNotMetException) when calling the DeleteFolder operation: folder not empty
[cloudshell-user@ip-10-134-17-197 ~]$
(機械翻訳)
DeleteFolder 操作の呼び出し時にエラーが発生しました(PreconditionNotMetException): フォルダが空ではありません。
参考